package emm;

import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.SwingConstants;
import javax.swing.UIManager;
import javax.swing.border.EmptyBorder;
import javax.swing.border.TitledBorder;

public class Mitgliedsverwaltung extends JFrame {

	private JPanel contentPane;
	private JMenuBar menuBar;
	private JMenu mnDatei;
	private JMenu mnMitglied;
	private JMenu mnAbteilung;
	private JMenu mnHilfe;
	private JMenuItem mntmBeenden;
	private JMenuItem mntmExport;
	private JMenuItem mntmAnlegen;
	private JMenuItem mntmBearbeiten;
	private JMenuItem mntmLoeschen;
	private JMenuItem mntmSuchen;
	private JMenuItem mntmAnlegen_1;
	private JMenuItem mntmBearbeiten_1;
	private JMenuItem mntmLoeschen_1;
	private JMenuItem mntmBedienungsanleitung;
	private JButton btnMitgliedAnlegen;
	private JButton btnMitgliedBearbeiten;
	private JButton btnMitgliedLoeschen;
	private JButton btnMitgliedSuchen;
	private JButton btnAbteilungAnlegen;
	private JButton btnAbteilungBearbeiten;
	private JButton btnAbteilungLoeschen;
	private JPanel panel;
	private JPanel panel_1;
	private JLabel lblStatus;
	private JLabel label;

	
	
	
	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					Mitgliedsverwaltung frame = new Mitgliedsverwaltung();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	public Mitgliedsverwaltung() {
		Datenabfrage();
		
		
			

		
		addWindowListener(new WindowAdapter() {
			@Override
			public void windowClosing(WindowEvent arg0) {
				beenden();
			}
		});
		setTitle("Easy Member Management");
		setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
		setBounds(100, 100, 600, 500);
		setJMenuBar(getMenuBar_1());
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);
		contentPane.add(getPanel());
		contentPane.add(getPanel_1());
		contentPane.add(getLblStatus());
		contentPane.add(getLabel());
	}
	private void Datenabfrage() {
		try {
			Class.forName("com.mysql.jdbc.Driver");
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		Connection con;
		Statement stmt;
		ResultSet rs = null;
		String abfrage = "select * from Mitglied";
		String url = "jdbc:mysql://141.39.193.170:3306/emmdb";
		
		// ABFRAGE1
		
		try {
		con = DriverManager.getConnection(url, "Emm", "cku$7326");
		stmt = con.createStatement();
		rs = stmt.executeQuery(abfrage);
		while (rs.next()) {
		System.out.println(rs.getInt(1) + " " + rs.getString(2) + " "
		+ rs.getString(3) + " " + rs.getDate(4) + " "
		+ rs.getInt(5) + " " + rs.getInt(6)
		+ " " + rs.getString(7) + " " + rs.getInt(8)
		+ " " + rs.getInt(9) + " " + rs.getString(10)
		+ " " + rs.getString(11) + " " + rs.getInt(12));
		}
		rs.close();
		stmt.close();
		con.close();
		System.out.println("------------ TEST-----");
		} catch (SQLException e) {
			
		// TODO Auto-generated catch block
		e.printStackTrace();
		}
		
	}

	private JMenuBar getMenuBar_1() {
		if (menuBar == null) {
			menuBar = new JMenuBar();
			menuBar.add(getMnDatei());
			menuBar.add(getMnMitglied());
			menuBar.add(getMnAbteilung());
			menuBar.add(getMnHilfe());
		}
		return menuBar;
	}
	private JMenu getMnDatei() {
		if (mnDatei == null) {
			mnDatei = new JMenu("Datei");
			mnDatei.add(getMntmExport());
			mnDatei.add(getMntmBeenden());
		}
		return mnDatei;
	}
	private JMenu getMnMitglied() {
		if (mnMitglied == null) {
			mnMitglied = new JMenu("Mitglied");
			mnMitglied.add(getMntmAnlegen());
			mnMitglied.add(getMntmBearbeiten());
			mnMitglied.add(getMntmLoeschen());
			mnMitglied.add(getMntmSuchen());
		}
		return mnMitglied;
	}
	private JMenu getMnAbteilung() {
		if (mnAbteilung == null) {
			mnAbteilung = new JMenu("Abteilung");
			mnAbteilung.add(getMntmAnlegen_1());
			mnAbteilung.add(getMntmBearbeiten_1());
			mnAbteilung.add(getMntmLoeschen_1());
		}
		return mnAbteilung;
	}
	private JMenu getMnHilfe() {
		if (mnHilfe == null) {
			mnHilfe = new JMenu("Hilfe");
			mnHilfe.add(getMntmBedienungsanleitung());
		}
		return mnHilfe;
	}
	private JMenuItem getMntmBeenden() {
		if (mntmBeenden == null) {
			mntmBeenden = new JMenuItem("Beenden");
			mntmBeenden.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent e) {
					beenden();
				}
			});
		}
		return mntmBeenden;
	}
	protected void beenden() {
		int op = JOptionPane.showConfirmDialog(this, "Wollen Sie tats�chlich beenden?", "Sicherheitsabfrage", JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE);
		if(op == JOptionPane.OK_OPTION) System.exit(0);
		
	}

	private JMenuItem getMntmExport() {
		if (mntmExport == null) {
			mntmExport = new JMenuItem("Export");
		}
		return mntmExport;
	}
	private JMenuItem getMntmAnlegen() {
		if (mntmAnlegen == null) {
			mntmAnlegen = new JMenuItem("Anlegen");
			mntmAnlegen.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent e) {
					mitgliedAnlegen();
				}
			});
		}
		return mntmAnlegen;
	}
	
	/* �ffnet das neue Fenster um Mitglieder anzulegen
	 */
	protected void mitgliedAnlegen() {
		try {
			MitgliedAnlegen ma = new MitgliedAnlegen();
			ma.setVisible(true);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}

	private JMenuItem getMntmBearbeiten() {
		if (mntmBearbeiten == null) {
			mntmBearbeiten = new JMenuItem("Bearbeiten");
		}
		return mntmBearbeiten;
	}
	private JMenuItem getMntmLoeschen() {
		if (mntmLoeschen == null) {
			mntmLoeschen = new JMenuItem("L\u00F6schen");
		}
		return mntmLoeschen;
	}
	private JMenuItem getMntmSuchen() {
		if (mntmSuchen == null) {
			mntmSuchen = new JMenuItem("Suchen");
		}
		return mntmSuchen;
	}
	private JMenuItem getMntmAnlegen_1() {
		if (mntmAnlegen_1 == null) {
			mntmAnlegen_1 = new JMenuItem("Anlegen");
		}
		return mntmAnlegen_1;
	}
	private JMenuItem getMntmBearbeiten_1() {
		if (mntmBearbeiten_1 == null) {
			mntmBearbeiten_1 = new JMenuItem("Bearbeiten");
		}
		return mntmBearbeiten_1;
	}
	private JMenuItem getMntmLoeschen_1() {
		if (mntmLoeschen_1 == null) {
			mntmLoeschen_1 = new JMenuItem("L\u00F6schen");
		}
		return mntmLoeschen_1;
	}
	private JMenuItem getMntmBedienungsanleitung() {
		if (mntmBedienungsanleitung == null) {
			mntmBedienungsanleitung = new JMenuItem("Bedienungsanleitung");
		}
		return mntmBedienungsanleitung;
	}
	private JButton getBtnMitgliedAnlegen() {
		if (btnMitgliedAnlegen == null) {
			btnMitgliedAnlegen = new JButton("Anlegen");
			btnMitgliedAnlegen.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent e) {
					mitgliedAnlegen();
				}
			});
			btnMitgliedAnlegen.setBounds(6, 40, 110, 25);
		}
		return btnMitgliedAnlegen;
	}
	private JButton getBtnMitgliedBearbeiten() {
		if (btnMitgliedBearbeiten == null) {
			btnMitgliedBearbeiten = new JButton("Bearbeiten");
			btnMitgliedBearbeiten.setBounds(6, 76, 110, 25);
		}
		return btnMitgliedBearbeiten;
	}
	private JButton getBtnMitgliedLoeschen() {
		if (btnMitgliedLoeschen == null) {
			btnMitgliedLoeschen = new JButton("L\u00F6schen");
			btnMitgliedLoeschen.setBounds(6, 112, 110, 25);
		}
		return btnMitgliedLoeschen;
	}
	private JButton getBtnMitgliedSuchen() {
		if (btnMitgliedSuchen == null) {
			btnMitgliedSuchen = new JButton("Suchen");
			btnMitgliedSuchen.setBounds(6, 148, 110, 25);
		}
		return btnMitgliedSuchen;
	}
	private JButton getBtnAbteilungAnlegen() {
		if (btnAbteilungAnlegen == null) {
			btnAbteilungAnlegen = new JButton("Anlegen");
			btnAbteilungAnlegen.setBounds(6, 40, 110, 25);
		}
		return btnAbteilungAnlegen;
	}
	private JButton getBtnAbteilungBearbeiten() {
		if (btnAbteilungBearbeiten == null) {
			btnAbteilungBearbeiten = new JButton("Bearbeiten");
			btnAbteilungBearbeiten.setBounds(6, 76, 110, 25);
		}
		return btnAbteilungBearbeiten;
	}
	private JButton getBtnAbteilungLoeschen() {
		if (btnAbteilungLoeschen == null) {
			btnAbteilungLoeschen = new JButton("L\u00F6schen");
			btnAbteilungLoeschen.setBounds(6, 112, 110, 25);
		}
		return btnAbteilungLoeschen;
	}
	private JPanel getPanel() {
		if (panel == null) {
			panel = new JPanel();
			panel.setBorder(new TitledBorder(UIManager.getBorder("TitledBorder.border"), "Mitglied", TitledBorder.CENTER, TitledBorder.TOP, null, null));
			panel.setBounds(73, 120, 125, 190);
			panel.setLayout(null);
			panel.add(getBtnMitgliedAnlegen());
			panel.add(getBtnMitgliedBearbeiten());
			panel.add(getBtnMitgliedLoeschen());
			panel.add(getBtnMitgliedSuchen());
		}
		return panel;
	}
	private JPanel getPanel_1() {
		if (panel_1 == null) {
			panel_1 = new JPanel();
			panel_1.setBorder(new TitledBorder(UIManager.getBorder("TitledBorder.border"), "Abteilung", TitledBorder.CENTER, TitledBorder.TOP, null, null));
			panel_1.setBounds(326, 120, 125, 190);
			panel_1.setLayout(null);
			panel_1.add(getBtnAbteilungAnlegen());
			panel_1.add(getBtnAbteilungBearbeiten());
			panel_1.add(getBtnAbteilungLoeschen());
		}
		return panel_1;
	}
	private JLabel getLblStatus() {
		if (lblStatus == null) {
			lblStatus = new JLabel("Status");
			lblStatus.setBounds(6, 405, 311, 25);
		}
		return lblStatus;
	}
	private JLabel getLabel() {
		if (label == null) {
			label = new JLabel("Dienstag , 20. November 2012");
			label.setHorizontalAlignment(SwingConstants.RIGHT);
			label.setBounds(404, 405, 170, 25);
		}
		return label;
	}
}
